Fix a crash in action muxer destruction
authorMatthias Clasen <mclasen@redhat.com>
Sun, 30 Jun 2019 18:35:28 +0000 (18:35 +0000)
committerMatthias Clasen <mclasen@redhat.com>
Sun, 30 Jun 2019 18:37:32 +0000 (18:37 +0000)
I've seen a crash when the action muxer gets
disposed during widget destroy, and tries to
disconnect from widget signals too late.

There is no real need to disconnect, since the
only time an action muxer is going away is when
its widget is destroyed, so just don't do it.

gtk/gtkactionmuxer.c

index 23c4f56a5a67b948503112a3817cb2e436e778a5..6b4fb9a654a3f3eb8d86088cde93c53e46e48de8 100644 (file)
@@ -561,13 +561,6 @@ prop_actions_connect (GtkActionMuxer *muxer)
     }
 }
 
-static void
-prop_actions_disconnect (GtkActionMuxer *muxer)
-{
-  if (muxer->widget)
-    g_signal_handlers_disconnect_by_func (muxer->widget,
-                                          prop_action_notify, muxer);
-}
 
 static gboolean
 gtk_action_muxer_query_action (GActionGroup        *action_group,
@@ -819,8 +812,6 @@ gtk_action_muxer_dispose (GObject *object)
 {
   GtkActionMuxer *muxer = GTK_ACTION_MUXER (object);
 
-  prop_actions_disconnect (muxer);
-
   if (muxer->parent)
   {
     g_signal_handlers_disconnect_by_func (muxer->parent, gtk_action_muxer_action_added_to_parent, muxer);